# data = eval(input('请输入你的成绩：'))
# if data < 60:
#     print('你的成绩等级是：E')
# elif 60 <= data < 70:
#     print('你的成绩等级是：D')
# elif 70 <= data < 80:
#     print('你的成绩等级是：C')
# elif 80 <= data < 90:
#     print('你的成绩等级是：B')
# elif 90 <= data <= 100:
#     print('你的成绩等级是：A')
# else:
#     print('输入错误')
from tarfile import data_filter

# data = eval(input('请输入你的成绩：'))
# match data: # data表示要匹配的数据
#     case _ if data < 60: # _表示匹配任何值，也就是通配符
#         print('你的成绩等级是：E')
#     case _ if 60 <= data < 70:
#         print('你的成绩等级是：D')
#     case _ if 70 <= data < 80:
#         print('你的成绩等级是：C')
#     case _ if 80 <= data < 90:
#         print('你的成绩等级是：B')
#     case _ if 90 <= data <= 100:
#         print('你的成绩等级是：A')
#     case _:
#         print('输入错误')


# data = 30
# match data:
#     case _ if data == 10:
#         print(data)
#     case _ if data == 20:
#         print(data)
#     case _ if data == 30:
#         print(data)
#     # 上面三种都是标准写法，下面就是更简单的写法
#     case 40: # 这是 data == 40 的简略写法
#         print(40)
#     case 50:
#         print(50)
#     case _: # 上面的都匹配不成功时，会执行这里的
#         print('匹配失败')
#
# s = "hello python"
# match s:
#     case 'hello c':
#         print('hello c')
#     case 'hello python':
#         print('hello python')
#     case 'hello java':
#         print('hello java')


# type = type(eval(input('请输入要匹配的类型：')))
#
# match type:
#     case _ if type == str:
#         print('This is a string')
#     case _ if type == int:
#         print('This is an integer')
#     case _ if type == float:
#         print('This is a float')
#     case _ if type == list:
#         print('This is a list')
#     case _ if type == dict:
#         print('This is a dictionary')
#     case _ if type == tuple:
#         print('This is a tuple')
#     case _ if type == set:
#         print('This is a set')
#     case _:
#         print('This is None')


# d1 = {'cat':'小猫', 'dog':'小狗'}
# d2 = {'people':'人类','animal':'动物'}
# merge_dict = d1 | d2
# print(merge_dict)
# print(d1)
# print(d2)

# list1 = ['dog', 'cat', 'bird', 'fish']
# list2 = [1,2,3,4]
# # 通过zip函数将两个对象压缩成一份，然后再去遍历这个一份，达到同时遍历两个的效果
# for l1,l2 in zip(list1, list2):
#     match l1,l2:
#         case _ if l1 == 'dog' and l2 == 1:
#             print('一只单身狗')
#         case _ if l1 == 'cat' and l2 == 2:
#             print('两个恋爱的小猫')
#         case _ if l1 == 'bird' and l2 == 3:
#             print('一家幸福的三口子')
#         case _ if l1 == 'fish' and l2 == 4:
#             print('四个幸福加倍的一家人')
#         case _:
#             print('匹配失败')


# str = 'Hello Python'
# print('开始一系列字符串操作')
# lower_str = str.lower()
# print('将字符串变成小写：',lower_str)
# upper_str = str.upper()
# print('将字符串变成大写：',upper_str)
# list = str.split(' ')
# print('以空格分割字符串：',list)
# count = str.count('o')
# print('字符串中"o"出现的次数：',count)
# a = str.find('o')
# b = str.index('o')
# print('字符串中"o"出现的索引位置：',a,b)
#
# print('字符串是不是以"hello"作为起始子串呢？',str.startswith('hello'))
# print('字符串是不是以"Hello"作为起始子串呢？',str.startswith('Hello'))
#
# print('字符串是不是以"python"作为结束子串呢？',str.endswith('python'))
# print('字符串是不是以"Python"作为起始子串呢？',str.endswith('Python'))


# str = 'Hello Python'
#
# # 替换字符串中的部分字符
# print(str.replace('Hello','Hi')) # 在最后面还可以指定参数
# print(str.replace('Hello','Hi',0)) # 指定替换0次，即不替换
#
# # 填充部分字符，是字符串在指定的范围内处于居中位置
# print(str.center(20)) # 在长度为20的空间中，默认使用空白字符填充，是字符串处于居中位置
# print(str.center(20, '*')) # 在上面的基础上，使用"*"进行填充
# print(str.center(10,'*')) # 当字符串本身超出 width 时，就直接打印输出
#
# # 在字符串str后面的每个字符元素中，加上"  "(两个空格)
# print('  '.join(str))
#
# # 将 '  hhh  ' 中的空格全部去掉(默认是去掉空格)，再使用'*'去替换空格
# print('  hhh  '.strip().replace(' ','*'))
# print('  hhh  '.replace(' ','*'))
# # 观察上面两个的不同，或者写成下面这样
#
# print('***hhh***'.strip('*')) # 直接将'*'从字符串中去除
# print('***hhh***'.lstrip('*')) # 直接将左边'*'从字符串中去除
# print('***hhh***'.rstrip('*')) # 直接将右边'*'从字符串中去除
# # 注意下面这种情况，是不能成功去除的
# print('*1**hhh***'.lstrip('*')) # 在去除'*'字符的过程中，遇到非'*'字符之后，就会停止去除
#
# print('经过一系列的字符串操作之后，原字符串为：'+str)